# -*- coding:utf-8 -*-
# 多态
# 多态指的是⼀类事物有多种形态
# 定义：多态是⼀种使⽤对象的⽅式，⼦类重写⽗类⽅法，
# 调⽤不同⼦类对象的相同⽗类⽅法，可以产⽣不同的执⾏结果
# 好处：调⽤灵活，有了多态，更容易编写出通⽤的代码，做出通⽤的编程，以适应需求的不断变化！
# 实现步骤：
"""
1、定义⽗类，并提供公共⽅法
2、定义⼦类，并重写⽗类⽅法
3、传递⼦类对象给调⽤者，可以看到不同⼦类执⾏效果不同
"""


# 代码示例
class Father(object):
    def func(self):
        print("下达命令, 出兵剿匪")


class Son1(Father):
    def func(self):
        print("正面攻城")


class Son2(Father):
    def func(self):
        print("背后偷袭")


class Main(object):
    def func_demo(self, demo):
        demo.func()


demo1 = Son1()
demo2 = Son2()

model = Main()
model.func_demo(demo1)
model.func_demo(demo2)
